package com.yx.changdao.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.yx.changdao.common.annotation.AutoFill;
import com.yx.changdao.common.utils.SysUtils;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;


@TableName(ProblemApply.TABLE_NAME)
@Getter
@Setter
public class ProblemApply implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据库名
     */
    public static final String TABLE_NAME = "problem_apply";

    /**
     * 主键id(申请记录id)
     */
    public static final String ID = "id";
    /**
     * 问题id
     */
    public static final String PROBLEM_ID = "problem_id";

    /**
     * 申请类型(疑难件申请 转部门申请)
     */
    public static final String APPLY_TYPE = "apply_type";

    /**
     * 申请状态(0-提交申请 1-同意 2-拒绝)
     */
    public static final String APPLY_STATUS = "apply_status";

    /**
     *提交申请时的部门ID
     */
    public static final String CURRENT_DEP_ID = "current_dep_id";

    /**
     *提交申请时的部门名称
     */
    public static final String CURRENT_DEP_NAME = "current_dep_name";

    /**
     * 创建时间
     */
    public static final String CREATE_TIME = "create_time";
    /**
     * 创建人
     */
    public static final String CREATE_BY_NAME = "create_by_name";
    /**
     * 创建人id
     */
    public static final String CREATE_BY = "create_by";
    /**
     * 更新时间
     */
    public static final String UPDATE_TIME = "update_time";
    /**
     * 更新人
     */
    public static final String UPDATE_BY_NAME = "update_by_name";
    /**
     * 更新人id
     */
    public static final String UPDATE_BY = "update_by";
    /**
     * 问题信息id
     */
    public static final String PROBLEM_INFO_ID = "problem_info_id";
    /**
     * 申请描述
     */
    public static final String APPLY_DESC = "apply_desc";

    /**
     * 主键id(申请记录id)
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * 问题id
     */
    private Integer problemId;

    /**
     * 问题信息id
     */
    private Integer problemInfoId;

    /**
     * 申请状态(0-提交申请 1-同意 2-拒绝)
     */
    private Integer applyStatus;

    /**
     * 提交申请时的部门ID
     */
    private Integer currentDepId;
    /**
     * 提交申请时的部门名称
     */
    private String currentDepName;

    /**
     * 创建时间
     */
    @AutoFill
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 创建人
     */
    @AutoFill(klass= SysUtils.class,method = "currentUserName")
    @TableField(fill = FieldFill.INSERT)
    private String createByName;
    /**
     * 创建人id
     */
    @AutoFill(klass= SysUtils.class,method = "currentUserId")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 更新时间
     */
    @AutoFill
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    /**
     * 更新人
     */
    @AutoFill(klass= SysUtils.class,method = "currentUserName")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateByName;
    /**
     * 更新人id
     */
    @AutoFill(klass= SysUtils.class,method = "currentUserId")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 申请描述
     */
    @TableField()
    private String applyDesc;
}
